nAG Fortran コンパイラ 7.1 マニュアル

 
ナビゲーション:前へ   上へ   次へ

7.6 f90_unix_file

このモジュールは ISO/IEC 9945-1:1990 Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language] で詳細に規定される機能に対するFortran APIの一部を提供するものです。

このモジュール中の関数はセクション5.6 ファイルの特徴に由来するものです。

エラー処理についてはF90_UNIX_ERRNOに記述されています。 省略可能なERRNO引数を用いた手続きに対し、エラーが生じERRNO が存在しなかった場合には、プログラムは終了させられる点に注意してください。

このモジュール中のすべての手続きは総称的なものです。いくつかは個別的でもあります が、これは将来のリリースで変わる可能性があります。

7.6.1 パラメータ

INTEGER(int32),PARAMETER :: F_OK
ファイルが存在するかどうかのチェック(ACCESS参照)を要求するフラグ。

USE F90_UNIX_ENV,ONLY:ID_KIND
このパラメータに関する記述についてはF90_UNIX_ENVの項を参照。

USE F90_UNIX_DIR,ONLY:MODE_KIND
このパラメータに関する記述についてはF90_UNIX_DIRの項を参照。

INTEGER(int32),PARAMETER :: R_OK
ファイルが読めるかどうかのチェック(ACCESS参照)を要求するフラグ。

INTEGER(MODE_KIND),PARAMETER :: S_IRGRP
グループに対する読み取り許可(STAT_T参照)を示すファイルモードビット。

INTEGER(MODE_KIND),PARAMETER :: S_IROTH
その他に対する読み取り許可(STAT_T参照)を示すファイルモードビット。

INTEGER(MODE_KIND),PARAMETER :: S_IRUSR
ユーザに対する読み取り許可(STAT_T参照)を示すファイルモードビット。

INTEGER(MODE_KIND),PARAMETER :: S_IRWXG
ファイルモードからグループアクセス権限ビットを選択するためのマスク (STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_IRWXO
ファイルモードからその他のアクセス権限ビットを選択するためのマスク (STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_IRWXU
ファイルモードからユーザアクセス権限ビットを選択するためのマスク (STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_ISGID
ファイルがset-group-ID(STAT_T参照)であることを示すファイルモード ビット。

INTEGER(MODE_KIND),PARAMETER :: S_ISUID
ファイルがset-user-ID(STAT_T参照)であることを示すファイルモード ビット。

INTEGER(MODE_KIND),PARAMETER :: S_IWGRP
グループの書き込み許可を示すファイルモードビット(STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_IWOTH
その他の書き込み許可を示すファイルモードビット(STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_IWUSR
ユーザの書き込み許可を示すファイルモードビット(STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_IXGRP
グループの実行許可を示すファイルモードビット(STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_IXOTH
その他の実行許可を示すファイルモードビット(STAT_T参照)。

INTEGER(MODE_KIND),PARAMETER :: S_IXUSR
ユーザの実行許可を示すファイルモードビット(STAT_T参照)。

USE F90_UNIX_ENV,ONLY :: TIME_KIND
このパラメータに関する記述についてはF90_UNIX_ENVの項を参照。

INTEGER(int32),PARAMETER :: W_OK
ファイルが書けるかどうかのチェック(ACCESS参照)を要求するフラグ。

INTEGER(int32),PARAMETER :: X_OK
ファイルが実行可能かどうかのチェック(ACCESS参照)を要求するフラグ。

7.6.2 型

TYPE stat_t
    INTEGER(MODE_KIND) st_mode
    INTEGER(...) st_ino
    INTEGER(...) st_dev
    INTEGER(...) st_nlink
    INTEGER(id_kind) st_uid
    INTEGER(id_kind) st_gid
    INTEGER(...) st_size
    INTEGER(TIME_KIND) st_atime, st_mtime, st_ctime
END TYPE
ファイルの特性を保持している構造体。
ST_MODE
ファイルモード(ユーザ/グループ/その他に対する読み取り/書き込み/実行許可、 及びset-group-ID, set-user-IDビット)。
ST_INO
ファイルのシリアル番号。
ST_DEV
ファイルが存在している装置に対するID。
ST_NLINK
ファイルに対するリンク(F90_UNIX_DIR, LINK操作参照)の数。
ST_UID
ファイル所有者のユーザ番号。
ST_GID
ファイルのグループ番号。
ST_SIZE
バイト単位のファイルサイズ(通常ファイルのみ)。
ST_ATIME
最後にアクセスした時刻。
ST_MTIME
最後に変更を加えた時刻。
ST_CTIME
最後にファイル状態が変更された時刻。

TYPE UTIMBUF
    INTEGER(time_kind) actime, modtime
END TYPE
UTIMEとの交信用時刻値を保持するためのデータ型。 ACTIMEST_ATIMEに対する、MODTIMEST_MTIMEに 対する新たな値を意味しています。

7.6.3 手続き

PURE SUBROUTINE access(path,amode,errno)
    CHARACTER(*),INTENT(IN) :: path
    INTEGER(*),INTENT(IN) :: amode
    INTEGER(error_kind),INTENT(OUT) :: errno
AMODEの値(F_OKか、またはR_OK, W_OK, X_OK の組合せでなくてはなりません)に従ってファイルのアクセス権限ビットをチェック します。後者の場合、値は加算、または組込み関数IORによって結合されます。

アクセス権限ビットのチェック結果はERRNO中に応答として返されます。アク セス可(すなわちファイルがF_OKとして存在している、あるいはR_OK 等の組合せによって要求されたアクセスがすべて許可されている)の場合は0、アク セス不可の場合はその理由を示すエラーコードがセットされます。 アクセス拒否のコードにはEACCES, ENAMETOOLONG, ENOENT, ENOTDIR, EROFSがあります(F90_UNIX_ERRNO参照)。

AMODEの値が不正だった場合にはエラーEINVALが返されます。

ACCESSに関する問合せのほとんどはINQUIRE文と等価です。特に:

CALL ACCESS(PATH,F_OK,ERRNO)
は次の場合に限り成功(ERRNO==0)を応答します:
INQUIRE(FILE=PATH,EXIST=LVAR)LVARに対し.TRUE.をセット する場合。
CALL ACCESS(PATH,R_OK,ERRNO)
は次の場合に限り成功(ERRNO==0)を応答します:
INQUIRE(FILE=PATH,READ=CHVAR)CHVARに対し'YES'をセット する場合。
CALL ACCESS(PATH,W_OK,ERRNO)
は次の場合に限り成功(ERRNO==0)を応答します:
INQUIRE(FILE=PATH,WRITE=CHVAR)CHVARに対し'YES'をセット する場合。
CALL ACCESS(PATH,IOR(W_OK,R_OK),ERRNO)
は次の場合に限り成功(ERRNO==0)を応答します:
INQUIRE(FILE=PATH,READWRITE=CHVAR)CHVARに対し'YES'をセット する場合。
唯一の違いはACCESSが拒否理由を応答として返す点、ファイルの実行可能性 をテストできる点にあります。

SUBROUTINE CHMOD(PATH,MODE,ERRNO)
    CHARACTER(*),INTENT(IN) :: PATH
    INTEGER(*),INTENT(IN) :: MODE
    INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO
ファイルモード(ST_MODE)をMODEに設定します。

起りうるエラーにはEACCES, ENAMETOOLONG, ENOTDIR, EPERM, EROFSがあります(F90_UNIX_ERRNO参照)。

SUBROUTINE CHOWN(PATH,OWNER,GROUP,ERRNO)
    CHARACTER(*),INTENT(IN) :: PATH
    INTEGER(id_kind),INTENT(IN) :: OWNER, GROUP
    INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO
ファイルPATHの所有者(ST_UID)をOWNERに、グループ番号 (ST_GID)をGROUPに変更します。

起りうるエラーにはEACCES, EINVAL, ENAMETOOLONG, ENOTDIR, ENOENT, EPERM, EROFSがあります (F90_UNIX_ERRNO参照)。

SUBROUTINE FSTAT(LUNIT,BUF,ERRNO)
    INTEGER(*),INTENT(IN) :: LUNIT
    TYPE(stat_t),INTENT(OUT) :: BUF
    INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO
論理装置LUNITに接続されたファイルの特性がBUFにセットされます。

LUNITが正しい論理装置番号でなかった場合、またはファイルに接続されて いなかった場合、エラーEBADFが発生します(F90_UNIX_ERRNO参照)。

PURE LOGICAL(word) FUNCTION isblk(mode)
    INTEGER(mode_kind),INTENT(IN) :: mode

ファイルが“ブロックデバイス”であることを示すMODE値である場合に 限り.TRUE.が返されます。

PURE LOGICAL(word) FUNCTION ischr(mode)
    INTEGER(mode_kind),INTENT(IN) :: mode

ファイルが“キャラクタデバイス”であることを示すMODE値である場合 に限り.TRUE.が返されます。

PURE LOGICAL(word) FUNCTION isdir(mode)
    INTEGER(mode_kind),INTENT(IN) :: mode

ファイルがディレクトリ(フォルダ)であることを示すMODE値である場合に 限り.TRUE.が返されます。

PURE LOGICAL(word) FUNCTION isfifo(mode)
    INTEGER(mode_kind),INTENT(IN) :: mode

ファイルが“FIFO”(名前付き、または名前なしパイプ)であることを示す MODE値である場合に限り.TRUE.が返されます。

PURE LOGICAL(word) FUNCTION isreg(mode)
    INTEGER(mode_kind),INTENT(IN) :: mode

ファイルが“通常”(regular)であることを示すMODE値である場合に 限り.TRUE.が返されます。

SUBROUTINE STAT(PATH,BUF,ERRNO)
    CHARACTER(*),INTENT(IN) :: PATH
    TYPE(stat_t),INTENT(OUT) :: BUF
    INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: ERRNO
ファイルPATHの特性がBUFにセットされます。

起りうるエラーにはEACCES, ENAMETOOLONG, ENOENT, ENOTDIRがあります(F90_UNIX_ERRNO参照)。

SUBROUTINE utime(path,times,errno)
    CHARACTER(*),INTENT(IN) :: path
    TYPE(utimbuf),OPTIONAL,INTENT(IN) :: times
    INTEGER(error_kind),OPTIONAL,INTENT(OUT) :: errno

PATHで指定されるファイルのアクセス時刻、変更時刻をそれぞれ、 TIMESACTIME, MODTIME成分によって指定される値に設定 します。

起りうるエラーにはEACCES, ENAMETOOLONG, ENOENT, ENOTDIR, EPERM, EROFSがあります (F90_UNIX_ERRNO参照)。

© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks